/**
 * 格式化日期时间为显示格式 (本地化)
 * @param dateString 日期时间字符串
 * @returns 本地化的日期时间字符串
 */
export function formatDateTimeForDisplay(dateString: string): string {
  if (!dateString) return '-'

  try {
    const date = new Date(dateString)
    if (isNaN(date.getTime())) return '-'

    return date.toLocaleString('zh-CN', {
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      second: '2-digit',
      hour12: false
    })
  } catch (error) {
    console.warn('DateTime formatting error:', error, 'Original value:', dateString)
    return '-'
  }
}

/**
 * 格式化日期时间为本地化字符串（兼容 dateUtils.ts 的函数）
 * @param dateTime 日期时间字符串（多种格式支持）
 * @returns 格式化后的本地日期时间字符串，如果无效则返回 '-'
 */
export const formatDateTime = (dateTime?: string): string => {
  return formatDateTimeForDisplay(dateTime || '')
}

/**
 * 获取当前日期时间的API格式字符串
 * @returns 当前日期时间的 yyyy-MM-dd HH:mm:ss 格式
 */
export function getCurrentDateTime(): string {
  const now = new Date()
  const year = now.getFullYear()
  const month = String(now.getMonth() + 1).padStart(2, '0')
  const day = String(now.getDate()).padStart(2, '0')
  const hours = String(now.getHours()).padStart(2, '0')
  const minutes = String(now.getMinutes()).padStart(2, '0')
  const seconds = String(now.getSeconds()).padStart(2, '0')

  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
}

/**
 * Element Plus 日期选择器的值格式常量
 */
export const DATE_FORMATS = {
  // 日期选择器格式
  DATE_PICKER_VALUE: 'YYYY-MM-DD',

  // 日期时间选择器格式
  DATE_TIME_PICKER_VALUE: 'YYYY-MM-DD HH:mm:ss',

  // API传输格式
  API_DATE: 'yyyy-MM-dd',
  API_DATE_TIME: 'yyyy-MM-dd HH:mm:ss'
} as const